<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JSDoc: Global</title>

    <script src="scripts/prettify/prettify.js"> </script>
    <script src="scripts/prettify/lang-css.js"> </script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>

<body>

<div id="main">

    <h1 class="page-title">Global</h1>

    




<section>

<header>
    
        <h2></h2>
        
    
</header>

<article>
    <div class="container-overview">
    
        

        


<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>


        
    
    </div>

    

    

    

    

    

    

    
        <h3 class="subsection-title">Members</h3>

        
            
<h4 class="name" id="comparePlaylistBandwidth"><span class="type-signature">(constant) </span>comparePlaylistBandwidth<span class="type-signature"></span></h4>




<div class="description">
    A comparator function to sort two playlist object by bandwidth.
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line62">line 62</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="comparePlaylistResolution"><span class="type-signature">(constant) </span>comparePlaylistResolution<span class="type-signature"></span></h4>




<div class="description">
    A comparator function to sort two playlist object by resolution (width).
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line87">line 87</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="duration"><span class="type-signature">(constant) </span>duration<span class="type-signature"></span></h4>




<div class="description">
    Calculates the duration of a playlist. If a start and end index
are specified, the duration will be for the subset of the media
timeline between those two indices. The total duration for live
playlists is always Infinity.
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line151">line 151</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="getMediaInfoForTime"><span class="type-signature">(constant) </span>getMediaInfoForTime<span class="type-signature"></span></h4>




<div class="description">
    Determine the index and estimated starting time of the segment that
contains a specified playback position in a media playlist.
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line341">line 341</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="isAes"><span class="type-signature">(constant) </span>isAes<span class="type-signature"></span></h4>




<div class="description">
    Returns whether the current playlist is an AES encrypted HLS stream
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line462">line 462</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="isFmp4"><span class="type-signature">(constant) </span>isFmp4<span class="type-signature"></span></h4>




<div class="description">
    Returns whether the current playlist contains fMP4
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line476">line 476</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="lastBandwidthSelector"><span class="type-signature">(constant) </span>lastBandwidthSelector<span class="type-signature"></span></h4>




<div class="description">
    Chooses the appropriate media playlist based on the most recent
bandwidth estimate and the player size.

Expects to be called within the context of an instance of HlsHandler
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line259">line 259</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="lowestBitrateCompatibleVariantSelector"><span class="type-signature">(constant) </span>lowestBitrateCompatibleVariantSelector<span class="type-signature"></span></h4>




<div class="description">
    Chooses the appropriate media playlist, which in this case is the lowest bitrate
one with video.  If no renditions with video exist, return the lowest audio rendition.

Expects to be called within the context of an instance of HlsHandler
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line406">line 406</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="mediaSegmentRequest"><span class="type-signature">(constant) </span>mediaSegmentRequest<span class="type-signature"></span></h4>




<div class="description">
    Load all resources and does any processing necessary for a media-segment

Features:
  decrypts the media-segment if it has a key uri and an iv
  aborts *all* requests if *any* one request fails

The segment object, at minimum, has the following format:
{
  resolvedUri: String,
  [byterange]: {
    offset: Number,
    length: Number
  },
  [key]: {
    resolvedUri: String
    [byterange]: {
      offset: Number,
      length: Number
    },
    iv: {
      bytes: Uint32Array
    }
  },
  [map]: {
    resolvedUri: String,
    [byterange]: {
      offset: Number,
      length: Number
    },
    [bytes]: Uint8Array
  }
}
...where [name] denotes optional properties
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line393">line 393</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="minRebufferMaxBandwidthSelector"><span class="type-signature">(constant) </span>minRebufferMaxBandwidthSelector<span class="type-signature"></span></h4>




<div class="description">
    Chooses the appropriate media playlist based on the potential to rebuffer
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line328">line 328</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="movingAverageBandwidthSelector"><span class="type-signature">(constant) </span>movingAverageBandwidthSelector<span class="type-signature"></span></h4>




<div class="description">
    Chooses the appropriate media playlist based on an
exponential-weighted moving average of the bandwidth after
filtering for player size.

Expects to be called within the context of an instance of HlsHandler
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line280">line 280</a>
    </li></ul></dd>
    

    

    
    <dt class="tag-see">See:</dt>
    <dd class="tag-see">
        <ul>
            <li><a href="https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average">https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average</a></li>
        </ul>
    </dd>
    

    
</dl>






        
            
<h4 class="name" id="parseCodecs"><span class="type-signature">(constant) </span>parseCodecs<span class="type-signature"></span></h4>




<div class="description">
    Parses a codec string to retrieve the number of codecs specified,
the video codec and object type indicator, and the audio profile.
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="util_codecs.js.html">util/codecs.js</a>, <a href="util_codecs.js.html#line12">line 12</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="refreshDelay"><span class="type-signature">(constant) </span>refreshDelay<span class="type-signature"></span></h4>




<div class="description">
    Calculates the time to wait before refreshing a live playlist
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-loader.js.html">playlist-loader.js</a>, <a href="playlist-loader.js.html#line158">line 158</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="safeBackBufferTrimTime"><span class="type-signature">(constant) </span>safeBackBufferTrimTime<span class="type-signature"></span></h4>




<div class="description">
    Calculates a time value that is safe to remove from the back buffer without interupting
playback.
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line89">line 89</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="seekable"><span class="type-signature">(constant) </span>seekable<span class="type-signature"></span></h4>




<div class="description">
    Calculates the interval of time that is currently seekable in a
playlist. The returned time ranges are relative to the earliest
moment in the specified playlist that is still available. A full
seekable implementation for live streams would need to offset
these values by the duration of content that has expired from the
stream.
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line293">line 293</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="simpleSelector"><span class="type-signature">(constant) </span>simpleSelector<span class="type-signature"></span></h4>




<div class="description">
    Chooses the appropriate media playlist based on bandwidth and player size
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line130">line 130</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="sumDurations"><span class="type-signature">(constant) </span>sumDurations<span class="type-signature"></span></h4>




<div class="description">
    Calculate the time between two indexes in the current playlist
neight the start- nor the end-index need to be within the current
playlist in which case, the targetDuration of the playlist is used
to approximate the durations of the segments
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line191">line 191</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="systemBandwidth"><span class="type-signature"></span>systemBandwidth<span class="type-signature"></span></h4>




<div class="description">
    `systemBandwidth` is a combination of two serial processes bit-rates. The first
is the network bitrate provided by `bandwidth` and the second is the bitrate of
the entire process after that - decryption, transmuxing, and appending - provided
by `throughput`.

Since the two process are serial, the overall system bandwidth is given by:
  sysBandwidth = 1 / (1 / bandwidth + 1 / throughput)
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="videojs-contrib-hls.js.html">videojs-contrib-hls.js</a>, <a href="videojs-contrib-hls.js.html#line396">line 396</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="updateMaster"><span class="type-signature">(constant) </span>updateMaster<span class="type-signature"></span></h4>




<div class="description">
    Returns a new master playlist that is the result of merging an
updated media playlist into the original version. If the
updated media playlist does not match any of the playlist
entries in the original master playlist, null is returned.
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-loader.js.html">playlist-loader.js</a>, <a href="playlist-loader.js.html#line65">line 65</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="updateSegments"><span class="type-signature">(constant) </span>updateSegments<span class="type-signature"></span></h4>




<div class="description">
    Returns a new array of segments that is the result of merging
properties from an older list of segments onto an updated
list. No properties on the updated playlist will be overridden.
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-loader.js.html">playlist-loader.js</a>, <a href="playlist-loader.js.html#line29">line 29</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
            
<h4 class="name" id="utils"><span class="type-signature">(constant) </span>utils<span class="type-signature"></span></h4>




<div class="description">
    utils to help dump binary data to the console
</div>







<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="bin-utils.js.html">bin-utils.js</a>, <a href="bin-utils.js.html#line81">line 81</a>
    </li></ul></dd>
    

    

    

    
</dl>






        
    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    
    <h4 class="name" id="abort"><span class="type-signature"></span>abort<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    abort anything that is currently doing on with the SegmentLoader
and reset to a default state
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line218">line 218</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="abort"><span class="type-signature"></span>abort<span class="signature">(done)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Aborts the current segment and resets the segment parser.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>done</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">function to call when done</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line87">line 87</a>
    </li></ul></dd>
    

    

    
    <dt class="tag-see">See:</dt>
    <dd class="tag-see">
        <ul>
            <li><a href="http://w3c.github.io/media-source/#widl-SourceBuffer-abort-void">http://w3c.github.io/media-source/#widl-SourceBuffer-abort-void</a></li>
        </ul>
    </dd>
    

    
</dl>


















        
            

    

    
    <h4 class="name" id="abortAll"><span class="type-signature"></span>abortAll<span class="signature">(activeXhrs)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Abort all requests
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>activeXhrs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">an object that tracks all XHR requests</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line48">line 48</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="activeGroup"><span class="type-signature"></span>activeGroup<span class="signature">(type, settings)</span><span class="type-signature"> &rarr; {function}</span></h4>
    

    



<div class="description">
    Returns a function used to get the active group of the provided type
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>type</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last">MediaGroup type</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>settings</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Object containing required information for media groups</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-groups.js.html">media-groups.js</a>, <a href="media-groups.js.html#line560">line 560</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Function that returns the active media group for the provided type. Takes an
        optional parameter {TextTrack} track. If no track is provided, a list of all
        variants in the group, otherwise the variant corresponding to the provided
        track is returned.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">function</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="appendBuffer"><span class="type-signature"></span>appendBuffer<span class="signature">(bytes, done)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Queue an update to append an ArrayBuffer.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>bytes</code></td>
            

            <td class="type">
            
                
<span class="param-type">ArrayBuffer</span>


            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>done</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">the function to call when done</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line102">line 102</a>
    </li></ul></dd>
    

    

    
    <dt class="tag-see">See:</dt>
    <dd class="tag-see">
        <ul>
            <li><a href="http://www.w3.org/TR/media-source/#widl-SourceBuffer-appendBuffer-void-ArrayBuffer-data">http://www.w3.org/TR/media-source/#widl-SourceBuffer-appendBuffer-void-ArrayBuffer-data</a></li>
        </ul>
    </dd>
    

    
</dl>


















        
            

    

    
    <h4 class="name" id="backwardDuration"><span class="type-signature"></span>backwardDuration<span class="signature">(playlist, endSequence)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    walk backward until we find a duration we can use
or return a failure
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">the playlist to walk through</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>endSequence</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the mediaSequence to stop walking on</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line17">line 17</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="buffered"><span class="type-signature"></span>buffered<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Indicates what TimeRanges are buffered in the managed SourceBuffer.
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line114">line 114</a>
    </li></ul></dd>
    

    

    
    <dt class="tag-see">See:</dt>
    <dd class="tag-see">
        <ul>
            <li><a href="http://www.w3.org/TR/media-source/#widl-SourceBuffer-buffered">http://www.w3.org/TR/media-source/#widl-SourceBuffer-buffered</a></li>
        </ul>
    </dd>
    

    
</dl>


















        
            

    

    
    <h4 class="name" id="buffered_"><span class="type-signature"></span>buffered_<span class="signature">()</span><span class="type-signature"> &rarr; {TimeRange}</span></h4>
    

    



<div class="description">
    Indicates which time ranges are buffered
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line282">line 282</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    TimeRange object representing the current buffered ranges
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">TimeRange</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="buffered_"><span class="type-signature"></span>buffered_<span class="signature">()</span><span class="type-signature"> &rarr; {TimeRange}</span></h4>
    

    



<div class="description">
    Indicates which time ranges are buffered
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="vtt-segment-loader.js.html">vtt-segment-loader.js</a>, <a href="vtt-segment-loader.js.html#line42">line 42</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    TimeRange object representing the current buffered ranges
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">TimeRange</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="bufferIntersection"><span class="type-signature"></span>bufferIntersection<span class="signature">(bufferA, bufferB)</span><span class="type-signature"> &rarr; {TimeRanges}</span></h4>
    

    



<div class="description">
    Calculate the intersection of two TimeRanges
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>bufferA</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>bufferB</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line159">line 159</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    The interesection of `bufferA` with `bufferB`
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">TimeRanges</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="byterangeStr"><span class="type-signature"></span>byterangeStr<span class="signature">(byterange)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Turns segment byterange into a string suitable for use in
HTTP Range requests
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>byterange</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">an object with two values defining the start and end
                            of a byte-range</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line17">line 17</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="calculateBufferedPercent"><span class="type-signature"></span>calculateBufferedPercent<span class="signature">(segmentRange, referenceRange, currentTime, buffered)</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    Calculates the percentage of `segmentRange` that overlaps the
`buffered` time ranges.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segmentRange</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the time range that the segment
covers adjusted according to currentTime</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>referenceRange</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the original time range that the
segment covers</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>currentTime</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">time in seconds where the current playback
is at</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>buffered</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the currently buffered time ranges</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line233">line 233</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    percent of the segment currently buffered
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="checkBuffer_"><span class="type-signature"></span>checkBuffer_<span class="signature">(buffered, playlist, mediaIndex, hasPlayed, currentTime, syncPoint)</span><span class="type-signature"> &rarr; {Object}</span></h4>
    

    



<div class="description">
    Determines what segment request should be made, given current playback
state.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>buffered</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the state of the buffer</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the playlist object to fetch segments from</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>mediaIndex</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the previous mediaIndex fetched or null</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>hasPlayed</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            

            

            <td class="description last">a flag indicating whether we have played or not</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>currentTime</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the playback position in seconds</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>syncPoint</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a segment info object that describes the</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line655">line 655</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    a segment request object that describes the segment to load
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="clamp"><span class="type-signature"></span>clamp<span class="signature">(num, start, end)</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    Clamps a value to within a range
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>num</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the value to clamp</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>start</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the start of the range to clamp within, inclusive</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>end</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the end of the range to clamp within, inclusive</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line26">line 26</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        


<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="createMediaTypes"><span class="type-signature"></span>createMediaTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>
    

    



<div class="description">
    Creates skeleton object used to store the loaders, tracks, and utility methods for each
media type
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-groups.js.html">media-groups.js</a>, <a href="media-groups.js.html#line742">line 742</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Object to store the loaders, tracks, and utility methods for each media type
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="createTransferableMessage"><span class="type-signature"></span>createTransferableMessage<span class="signature">(message)</span><span class="type-signature"> &rarr; {Object}</span></h4>
    

    



<div class="description">
    Creates an object for sending to a web worker modifying properties that are TypedArrays
into a new object with seperated properties for the buffer, byteOffset, and byteLength.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>message</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Object of properties and values to send to the web worker</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="bin-utils.js.html">bin-utils.js</a>, <a href="bin-utils.js.html#line33">line 33</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Modified message with TypedArray values expanded
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="DecrypterWorker"><span class="type-signature"></span>DecrypterWorker<span class="signature">(self)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Our web worker interface so that things can talk to aes-decrypter
that will be running in a web worker. the scope is passed to this by
webworkify.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>self</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the scope for the web worker</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="decrypter-worker.js.html">decrypter-worker.js</a>, <a href="decrypter-worker.js.html#line13">line 13</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="decryptSegment"><span class="type-signature"></span>decryptSegment<span class="signature">(decrypter, segment, doneFn)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Decrypt the segment via the decryption web worker
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>decrypter</code></td>
            

            <td class="type">
            
                
<span class="param-type">WebWorker</span>


            
            </td>

            

            

            <td class="description last">a WebWorker interface to AES-128 decryption routines</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>segment</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a simplified copy of the segmentInfo object
                          from SegmentLoader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>doneFn</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">a callback that is executed after decryption has completed</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line243">line 243</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="detectEndOfStream"><span class="type-signature"></span>detectEndOfStream<span class="signature">(playlist, mediaSource, segmentIndex)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
    

    



<div class="description">
    Determines if we should call endOfStream on the media source based
on the state of the buffer or if appened segment was the final
segment in the playlist.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a media playlist object</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>mediaSource</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the MediaSource object</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>segmentIndex</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the index of segment we last appended</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line29">line 29</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    do we need to call endOfStream on the MediaSource
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    dispose of the source updater and the underlying sourceBuffer
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line186">line 186</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    dispose of the SegmentLoader and reset to the default state
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line204">line 204</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Abort any outstanding work and clean up.
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-loader.js.html">playlist-loader.js</a>, <a href="playlist-loader.js.html#line307">line 307</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="enableFunction"><span class="type-signature"></span>enableFunction<span class="signature">(loader, playlistUri, changePlaylistFn, enable<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {function}</span></h4>
    

    



<div class="description">
    Returns a function that acts as the Enable/disable playlist function.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>loader</code></td>
            

            <td class="type">
            
                
<span class="param-type">PlaylistLoader</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">The master playlist loader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>playlistUri</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">uri of the playlist</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>changePlaylistFn</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">A function to be called after a
playlist's enabled-state has been changed. Will NOT be called if a
playlist's enabled-state is unchanged</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>enable</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last">Value to set the playlist enabled-state to
or if undefined returns the current enabled-state for the playlist</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="rendition-mixin.js.html">rendition-mixin.js</a>, <a href="rendition-mixin.js.html#line15">line 15</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Function for setting/getting enabled
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">function</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="error"><span class="type-signature"></span>error<span class="signature">(error)</span><span class="type-signature"> &rarr; {Error}</span></h4>
    

    



<div class="description">
    set an error on the segment loader and null out any pending segements
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>error</code></td>
            

            <td class="type">
            
                
<span class="param-type">Error</span>


            
            </td>

            

            

            <td class="description last">the error to set on the SegmentLoader</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line261">line 261</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    the error that was set or that is currently set
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Error</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="estimateSegmentRequestTime"><span class="type-signature"></span>estimateSegmentRequestTime<span class="signature">(segmentDuration, bandwidth, playlist, bytesReceived<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Number|NaN}</span></h4>
    

    



<div class="description">
    Estimates the time required to complete a segment download from the specified playlist
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segmentDuration</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">Duration of requested segment</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>bandwidth</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">Current measured bandwidth of the player</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">The media playlist object</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>bytesReceived</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last">Number of bytes already received for the request. Defaults to 0</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line500">line 500</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    The estimated time to request the segment. NaN if bandwidth information for
        the given playlist is unavailable
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>
|

<span class="param-type">NaN</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="findAdCue"><span class="type-signature"></span>findAdCue<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Searches for an ad cue that overlaps with the given mediaTime
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ad-cue-tags.js.html">ad-cue-tags.js</a>, <a href="ad-cue-tags.js.html#line9">line 9</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="findGaps"><span class="type-signature"></span>findGaps<span class="signature">(buffered)</span><span class="type-signature"> &rarr; {TimeRanges}</span></h4>
    

    



<div class="description">
    Returns gaps within a list of TimeRanges
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>buffered</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the TimeRanges object</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line76">line 76</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    a TimeRanges object of gaps
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">TimeRanges</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="findNextRange"><span class="type-signature"></span>findNextRange<span class="signature">(timeRanges, time)</span><span class="type-signature"> &rarr; {TimeRanges}</span></h4>
    

    



<div class="description">
    Returns the TimeRanges that begin later than the specified time.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>timeRanges</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the TimeRanges object to query</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>time</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last">the time to filter on.</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line65">line 65</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    a new TimeRanges object.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">TimeRanges</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="findRange"><span class="type-signature"></span>findRange<span class="signature">(buffered, time)</span><span class="type-signature"> &rarr; {TimeRanges}</span></h4>
    

    



<div class="description">
    Attempts to find the buffered TimeRange that contains the specified
time.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>buffered</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the TimeRanges object to query</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>time</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last">the time to filter on.</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line52">line 52</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    a new TimeRanges object
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">TimeRanges</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="findSoleUncommonTimeRangesEnd"><span class="type-signature"></span>findSoleUncommonTimeRangesEnd<span class="signature">(original, update)</span><span class="type-signature"> &rarr; {Number|null}</span></h4>
    

    



<div class="description">
    Search for a likely end time for the segment that was just appened
based on the state of the `buffered` property before and after the
append. If we fin only one such uncommon end-point return it.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>original</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the buffered time ranges before the update</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>update</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the buffered time ranges after the update</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line102">line 102</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    the end time added between `original` and `update`,
or null if one cannot be unambiguously determined.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="formatHexString"><span class="type-signature"></span>formatHexString<span class="signature">(e, i)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    format a number as hex string
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>e</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">The number</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>i</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the iterator</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="bin-utils.js.html">bin-utils.js</a>, <a href="bin-utils.js.html#line21">line 21</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="forwardDuration"><span class="type-signature"></span>forwardDuration<span class="signature">(playlist, endSequence)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    walk forward until we find a duration we can use
or return a failure
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">the playlist to walk through</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>endSequence</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the mediaSequence to stop walking on</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line59">line 59</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="getCodecs"><span class="type-signature"></span>getCodecs<span class="signature">(media)</span><span class="type-signature"> &rarr; {Object}</span></h4>
    

    



<div class="description">
    Returns a set of codec strings parsed from the playlist or the default
codec strings if no codecs were specified in the playlist
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>media</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">the current media playlist</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="master-playlist-controller.js.html">master-playlist-controller.js</a>, <a href="master-playlist-controller.js.html#line101">line 101</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    an object with the video and audio codecs
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getContainerType"><span class="type-signature"></span>getContainerType<span class="signature">(media)</span><span class="type-signature"> &rarr; {String}</span></h4>
    

    



<div class="description">
    Returns the type container based on information in the playlist
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>media</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">the current media playlist</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="master-playlist-controller.js.html">master-playlist-controller.js</a>, <a href="master-playlist-controller.js.html#line84">line 84</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    a valid media container type
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getExpiredTime"><span class="type-signature"></span>getExpiredTime<span class="signature">(playlist, duration)</span><span class="type-signature"> &rarr; {Number|null}</span></h4>
    

    



<div class="description">
    Calculate the amount of time that has expired off the playlist during playback
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">Playlist object to calculate expired from</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>duration</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">Duration of the MediaSource (Infinity if playling a live source)</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="sync-controller.js.html">sync-controller.js</a>, <a href="sync-controller.js.html#line200">line 200</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    The amount of time that has expired off the playlist during playback. Null
         if no sync-points for the playlist can be found.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getMostImportantError"><span class="type-signature"></span>getMostImportantError<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    The purpose of this function is to get the most pertinent error from the
array of errors.
For instance if a timeout and two aborts occur, then the aborts were
likely triggered by the timeout so return that error object.
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line277">line 277</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="getProgressStats"><span class="type-signature"></span>getProgressStats<span class="signature">(progressEvent)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    If possible gather bandwidth stats as a request is in
progress
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>progressEvent</code></td>
            

            <td class="type">
            
                
<span class="param-type">Event</span>


            
            </td>

            

            

            <td class="description last">an event object from an XHR's progress event</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line73">line 73</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="getRequestStats"><span class="type-signature"></span>getRequestStats<span class="signature">(request)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Gather important bandwidth stats once a request has completed
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>request</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the XHR request from which to gather stats</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line59">line 59</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="getSegmentBufferedPercent"><span class="type-signature"></span>getSegmentBufferedPercent<span class="signature">(startOfSegment, segmentDuration, currentTime, buffered)</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    Return the amount of a range specified by the startOfSegment and segmentDuration
overlaps the current buffered content.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>startOfSegment</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the time where the segment begins</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>segmentDuration</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the duration of the segment in seconds</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>currentTime</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">time in seconds where the current playback
is at</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>buffered</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRanges</span>


            
            </td>

            

            

            <td class="description last">the state of the buffer</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line284">line 284</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    percentage of the segment's time range that is
already in `buffered`
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getSyncPoint"><span class="type-signature"></span>getSyncPoint<span class="signature">(playlist, duration, currentTimeline)</span><span class="type-signature"> &rarr; {Object}</span></h4>
    

    



<div class="description">
    Find a sync-point for the playlist specified

A sync-point is defined as a known mapping from display-time to
a segment-index in the current playlist.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">The playlist that needs a sync-point</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>duration</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">Duration of the MediaSource (Infinite if playing a live source)</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>currentTimeline</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">The last timeline from which a segment was loaded</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="sync-controller.js.html">sync-controller.js</a>, <a href="sync-controller.js.html#line170">line 170</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    A sync-point object
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getSyncSegmentCandidate_"><span class="type-signature"></span>getSyncSegmentCandidate_<span class="signature">(playlist)</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    The segment loader has no recourse except to fetch a segment in the
current playlist and use the internal timestamps in that segment to
generate a syncPoint. This function returns a good candidate index
for that process.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the playlist object to look for a</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line750">line 750</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    An index of a segment from the playlist to load
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="handleErrors"><span class="type-signature"></span>handleErrors<span class="signature">(error, request)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Handle all error conditions in one place and return an object
with all the information
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>error</code></td>
            

            <td class="type">
            
                
<span class="param-type">Error</span>
|

<span class="param-type">null</span>


            
            </td>

            

            

            <td class="description last">if non-null signals an error occured with the XHR</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>request</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the XHR request that possibly generated the error</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line98">line 98</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="handleHlsLoadedMetadata"><span class="type-signature"></span>handleHlsLoadedMetadata<span class="signature">(qualityLevels, hls)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Adds quality levels to list once playlist metadata is available
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>qualityLevels</code></td>
            

            <td class="type">
            
                
<span class="param-type">QualityLevelList</span>


            
            </td>

            

            

            <td class="description last">The QualityLevelList to attach events to.</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>hls</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Hls object to listen to for media events.</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="videojs-contrib-hls.js.html">videojs-contrib-hls.js</a>, <a href="videojs-contrib-hls.js.html#line117">line 117</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="handleHlsMediaChange"><span class="type-signature"></span>handleHlsMediaChange<span class="signature">(qualityLevels, playlistLoader)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Updates the selectedIndex of the QualityLevelList when a mediachange happens in hls.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>qualityLevels</code></td>
            

            <td class="type">
            
                
<span class="param-type">QualityLevelList</span>


            
            </td>

            

            

            <td class="description last">The QualityLevelList to update.</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>playlistLoader</code></td>
            

            <td class="type">
            
                
<span class="param-type">PlaylistLoader</span>


            
            </td>

            

            

            <td class="description last">PlaylistLoader containing the new media info.</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="videojs-contrib-hls.js.html">videojs-contrib-hls.js</a>, <a href="videojs-contrib-hls.js.html#line92">line 92</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="handleInitSegmentResponse"><span class="type-signature"></span>handleInitSegmentResponse<span class="signature">(segment, finishProcessingFn)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Handle init-segment responses
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segment</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a simplified copy of the segmentInfo object
                          from SegmentLoader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>finishProcessingFn</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">a callback to execute to continue processing
                                       this request</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line174">line 174</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="handleKeyResponse"><span class="type-signature"></span>handleKeyResponse<span class="signature">(segment, finishProcessingFn)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Handle responses for key data and convert the key data to the correct format
for the decryption step later
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segment</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a simplified copy of the segmentInfo object
                          from SegmentLoader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>finishProcessingFn</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">a callback to execute to continue processing
                                       this request</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line138">line 138</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="handleProgress"><span class="type-signature"></span>handleProgress<span class="signature">(segment, progressFn, event)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Simple progress event callback handler that gathers some stats before
executing a provided callback with the `segment` object
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segment</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a simplified copy of the segmentInfo object
                          from SegmentLoader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>progressFn</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">a callback that is executed each time a progress event
                               is received</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>event</code></td>
            

            <td class="type">
            
                
<span class="param-type">Event</span>


            
            </td>

            

            

            <td class="description last">the progress event object from XMLHttpRequest</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line334">line 334</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="handleSegmentResponse"><span class="type-signature"></span>handleSegmentResponse<span class="signature">(segment, finishProcessingFn)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Response handler for segment-requests being sure to set the correct
property depending on whether the segment is encryped or not
Also records and keeps track of stats that are used for ABR purposes
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segment</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a simplified copy of the segmentInfo object
                          from SegmentLoader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>finishProcessingFn</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">a callback to execute to continue processing
                                       this request</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line206">line 206</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="hasAttribute"><span class="type-signature"></span>hasAttribute<span class="signature">(attr, playlist)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
    

    



<div class="description">
    Checks if the playlist has a value for the specified attribute
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>attr</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last">Attribute to check for</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">The media playlist object</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line485">line 485</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Whether the playlist contains a value for the attribute or not
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="HlsSourceHandler"><span class="type-signature"></span>HlsSourceHandler<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    The Source Handler object, which informs video.js what additional
MIME types are supported and sets up playback. It is registered
automatically to the appropriate tech based on the capabilities of
the browser it is running in. It is not necessary to use or modify
this object in normal usage.
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="videojs-contrib-hls.js.html">videojs-contrib-hls.js</a>, <a href="videojs-contrib-hls.js.html#line570">line 570</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="initSegment"><span class="type-signature"></span>initSegment<span class="signature">(map, set<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Object}</span></h4>
    

    



<div class="description">
    Gets and sets init segment for the provided map
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>map</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last">The map object representing the init segment to get or set</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>set</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    false
                
                </td>
            

            <td class="description last">If true, the init segment for the provided map should be saved</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line300">line 300</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    map object for desired init segment
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="initSegment"><span class="type-signature"></span>initSegment<span class="signature">(map, set<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Object}</span></h4>
    

    



<div class="description">
    Gets and sets init segment for the provided map
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>map</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last">The map object representing the init segment to get or set</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>set</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    false
                
                </td>
            

            <td class="description last">If true, the init segment for the provided map should be saved</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="vtt-segment-loader.js.html">vtt-segment-loader.js</a>, <a href="vtt-segment-loader.js.html#line64">line 64</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    map object for desired init segment
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="initSegmentId"><span class="type-signature"></span>initSegmentId<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Returns a unique string identifier for a media initialization
segment.
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="bin-utils.js.html">bin-utils.js</a>, <a href="bin-utils.js.html#line67">line 67</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="intervalDuration"><span class="type-signature"></span>intervalDuration<span class="signature">(playlist, endSequence<span class="signature-attributes">opt</span>, expired)</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    Calculate the media duration from the segments associated with a
playlist. The duration of a subinterval of the available segments
may be calculated by specifying an end index.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">a media playlist object</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>endSequence</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last">an exclusive upper boundary
for the playlist.  Defaults to playlist length.</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>expired</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">the amount of time that has dropped
off the front of the playlist in a live scenario</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line102">line 102</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    the duration between the first available segment
and end index.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="isBlacklisted"><span class="type-signature"></span>isBlacklisted<span class="signature">(playlist)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
    

    



<div class="description">
    Check whether the playlist is blacklisted or not.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the media playlist object</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line410">line 410</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    whether the playlist is blacklisted or not
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="isDisabled"><span class="type-signature"></span>isDisabled<span class="signature">(playlist)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
    

    



<div class="description">
    Check whether the playlist has been manually disabled through the representations api.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the media playlist object</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line446">line 446</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    whether the playlist is disabled manually or not
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="isEnabled"><span class="type-signature"></span>isEnabled<span class="signature">(playlist)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
    

    



<div class="description">
    Check whether the playlist is enabled or not.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the media playlist object</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line433">line 433</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    whether the playlist is enabled or not
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="isIncompatible"><span class="type-signature"></span>isIncompatible<span class="signature">(playlist)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
    

    



<div class="description">
    Check whether the playlist is compatible with current playback configuration or has
been blacklisted permanently for being incompatible.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">the media playlist object</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line421">line 421</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    whether the playlist is incompatible or not
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="load"><span class="type-signature"></span>load<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    start loading of the playlist
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-loader.js.html">playlist-loader.js</a>, <a href="playlist-loader.js.html#line454">line 454</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="load"><span class="type-signature"></span>load<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    load a playlist and start to fill the buffer
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line337">line 337</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="makeMimeTypeString"><span class="type-signature"></span>makeMimeTypeString<span class="signature">(type, container, codecs)</span><span class="type-signature"> &rarr; {String}</span></h4>
    

    



<div class="description">
    Build a media mime-type string from a set of parameters
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>type</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last">either 'audio' or 'video'</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>container</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last">either 'mp2t' or 'mp4'</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>codecs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last">an array of codec strings to add</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="master-playlist-controller.js.html">master-playlist-controller.js</a>, <a href="master-playlist-controller.js.html#line72">line 72</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    a valid media mime-type
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="media"><span class="type-signature"></span>media<span class="signature">(playlist<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Playlist}</span></h4>
    

    



<div class="description">
    When called without any arguments, returns the currently
active media playlist. When called with a single argument,
triggers the playlist loader to asynchronously switch to the
specified media playlist. Calling this method while the
loader is in the HAVE_NOTHING causes an error to be emitted
but otherwise has no effect.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last">the parsed media playlist
object to switch to</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-loader.js.html">playlist-loader.js</a>, <a href="playlist-loader.js.html#line334">line 334</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    the current loaded media
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Playlist</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="mimeType"><span class="type-signature"></span>mimeType<span class="signature">(mimeType, sourceBufferEmitter)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    create/set the following mimetype on the SourceBuffer through a
SourceUpdater
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>mimeType</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last">the mime type string to use</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sourceBufferEmitter</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">an event emitter that fires when a source buffer
is added to the media source</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line490">line 490</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="onGroupChanged"><span class="type-signature"></span>onGroupChanged<span class="signature">(type, settings)</span><span class="type-signature"> &rarr; {function}</span></h4>
    

    



<div class="description">
    Returns a function to be called when the media group changes. It performs a
non-destructive (preserve the buffer) resync of the SegmentLoader. This is because a
change of group is merely a rendition switch of the same content at another encoding,
rather than a change of content, such as switching audio from English to Spanish.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>type</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last">MediaGroup type</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>settings</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Object containing required information for media groups</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-groups.js.html">media-groups.js</a>, <a href="media-groups.js.html#line58">line 58</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Handler for a non-destructive resync of SegmentLoader when the active media
        group changes.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">function</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="onTrackChanged"><span class="type-signature"></span>onTrackChanged<span class="signature">(type, settings)</span><span class="type-signature"> &rarr; {function}</span></h4>
    

    



<div class="description">
    Returns a function to be called when the media track changes. It performs a
destructive reset of the SegmentLoader to ensure we start loading as close to
currentTime as possible.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>type</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last">MediaGroup type</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>settings</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Object containing required information for media groups</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-groups.js.html">media-groups.js</a>, <a href="media-groups.js.html#line109">line 109</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Handler for a destructive reset of SegmentLoader when the active media
        track changes.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">function</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="pause"><span class="type-signature"></span>pause<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    pause loading of the playlist
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-loader.js.html">playlist-loader.js</a>, <a href="playlist-loader.js.html#line428">line 428</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="pause"><span class="type-signature"></span>pause<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Prevent the loader from fetching additional segments. If there
is a segment request outstanding, it will finish processing
before the loader halts. A segment loader can be unpaused by
calling load().
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line465">line 465</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="paused"><span class="type-signature"></span>paused<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Returns whether the segment loader is fetching additional
segments when given the opportunity. This property can be
modified through calls to pause() and load().
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line478">line 478</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="playlist"><span class="type-signature"></span>playlist<span class="signature">(media)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    set a playlist on the segment loader
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>media</code></td>
            

            <td class="type">
            
                
<span class="param-type">PlaylistLoader</span>


            
            </td>

            

            

            <td class="description last">the playlist to set on the segment loader</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line387">line 387</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="playlistEnd"><span class="type-signature"></span>playlistEnd<span class="signature">(playlist, expired<span class="signature-attributes">opt</span>, useSafeLiveEnd)</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    Calculates the playlist end time
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">a media playlist object</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>expired</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last">the amount of time that has
                 dropped off the front of the playlist in a live scenario</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>useSafeLiveEnd</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>
|

<span class="param-type">false</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last">a boolean value indicating whether or not the
                       playlist end calculation should consider the safe live end
                       (truncate the playlist end by three segments). This is normally
                       used for calculating the end of the playlist's seekable range.</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line244">line 244</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    the end time of playlist
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="printableRange"><span class="type-signature"></span>printableRange<span class="signature">(range)</span><span class="type-signature"> &rarr; {String}</span></h4>
    

    



<div class="description">
    Gets a human readable string for a TimeRange
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>range</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRange</span>


            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line333">line 333</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    a human readable string
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="probeSegmentInfo"><span class="type-signature"></span>probeSegmentInfo<span class="signature">(segmentInfo)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Probe or inspect a fmp4 or an mpeg2-ts segment to determine the start
and end of the segment in it's internal "media time". Used to generate
mappings from that internal "media time" to the display time that is
shown on the player.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segmentInfo</code></td>
            

            <td class="type">
            
                
<span class="param-type">SegmentInfo</span>


            
            </td>

            

            

            <td class="description last">The current active request information</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="sync-controller.js.html">sync-controller.js</a>, <a href="sync-controller.js.html#line360">line 360</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="queueCallback_"><span class="type-signature"></span>queueCallback_<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Queue a callback to run
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line163">line 163</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="reloadSourceOnError"><span class="type-signature"></span>reloadSourceOnError<span class="signature">(options<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Reload the source when an error is detected as long as there
wasn't an error previously within the last 30 seconds
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>options</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last">an object with plugin options</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="reload-source-on-error.js.html">reload-source-on-error.js</a>, <a href="reload-source-on-error.js.html#line121">line 121</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="remove"><span class="type-signature"></span>remove<span class="signature">(start, end)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Remove any data in the source buffer between start and end times
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>start</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the start time of the region to remove from the buffer</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>end</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the end time of the region to remove from the buffer</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line540">line 540</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="remove"><span class="type-signature"></span>remove<span class="signature">(start, end)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Remove any data in the source buffer between start and end times
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>start</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the start time of the region to remove from the buffer</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>end</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the end time of the region to remove from the buffer</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="vtt-segment-loader.js.html">vtt-segment-loader.js</a>, <a href="vtt-segment-loader.js.html#line147">line 147</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="remove"><span class="type-signature"></span>remove<span class="signature">(start, end)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Queue an update to remove a time range from the buffer.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>start</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">where to start the removal</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>end</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">where to end the removal</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line128">line 128</a>
    </li></ul></dd>
    

    

    
    <dt class="tag-see">See:</dt>
    <dd class="tag-see">
        <ul>
            <li><a href="http://www.w3.org/TR/media-source/#widl-SourceBuffer-remove-void-double-start-unrestricted-double-end">http://www.w3.org/TR/media-source/#widl-SourceBuffer-remove-void-double-start-unrestricted-double-end</a></li>
        </ul>
    </dd>
    

    
</dl>


















        
            

    

    
    <h4 class="name" id="renditionSelectionMixin"><span class="type-signature"></span>renditionSelectionMixin<span class="signature">(hlsHandler)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    A mixin function that adds the `representations` api to an instance
of the HlsHandler class
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>hlsHandler</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="HlsHandler.html">HlsHandler</a></span>


            
            </td>

            

            

            <td class="description last">An instance of HlsHandler to add the
representation API into</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="rendition-mixin.js.html">rendition-mixin.js</a>, <a href="rendition-mixin.js.html#line85">line 85</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Reset the state of the inspection cache when we do a rendition
switch
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="sync-controller.js.html">sync-controller.js</a>, <a href="sync-controller.js.html#line348">line 348</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="resetEverything"><span class="type-signature"></span>resetEverything<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Delete all the buffered data and reset the SegmentLoader
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line507">line 507</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="resetLoader"><span class="type-signature"></span>resetLoader<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Force the SegmentLoader to resync and start loading around the currentTime instead
of starting at the end of the buffer

Useful for fast quality changes
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line520">line 520</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="resyncLoader"><span class="type-signature"></span>resyncLoader<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Force the SegmentLoader to restart synchronization and make a conservative guess
before returning to the simple walk-forward method
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="segment-loader.js.html">segment-loader.js</a>, <a href="segment-loader.js.html#line529">line 529</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="runCallback_"><span class="type-signature"></span>runCallback_<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Run a queued callback
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line171">line 171</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="safeGetComputedStyle"><span class="type-signature"></span>safeGetComputedStyle<span class="signature">(el, the)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Returns the CSS value for the specified property on an element
using `getComputedStyle`. Firefox has a long-standing issue where
getComputedStyle() may return null when running in an iframe with
`display: none`.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>el</code></td>
            

            <td class="type">
            
                
<span class="param-type">HTMLElement</span>


            
            </td>

            

            

            <td class="description last">the htmlelement to work on</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>the</code></td>
            

            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>

            

            

            <td class="description last">proprety to get the style for</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line17">line 17</a>
    </li></ul></dd>
    

    

    
    <dt class="tag-see">See:</dt>
    <dd class="tag-see">
        <ul>
            <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=548397">https://bugzilla.mozilla.org/show_bug.cgi?id=548397</a></li>
        </ul>
    </dd>
    

    
</dl>


















        
            

    

    
    <h4 class="name" id="safeLiveIndex"><span class="type-signature"></span>safeLiveIndex<span class="signature">(playlist)</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    Determines the media index of the segment corresponding to the safe edge of the live
window which is the duration of the last segment plus 2 target durations from the end
of the playlist.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a media playlist object</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist.js.html">playlist.js</a>, <a href="playlist.js.html#line212">line 212</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    The media index of the segment at the safe live point. 0 if there is no "safe"
        point.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="saveExpiredSegmentInfo"><span class="type-signature"></span>saveExpiredSegmentInfo<span class="signature">(oldPlaylist, newPlaylist)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Save any meta-data present on the segments when segments leave
the live window to the playlist to allow for synchronization at the
playlist level later.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>oldPlaylist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">The previous active playlist</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>newPlaylist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">The updated and most current playlist</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="sync-controller.js.html">sync-controller.js</a>, <a href="sync-controller.js.html#line310">line 310</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="segmentXhrHeaders"><span class="type-signature"></span>segmentXhrHeaders<span class="signature">(segment)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Defines headers for use in the xhr request for a particular segment.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segment</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a simplified copy of the segmentInfo object
                          from SegmentLoader</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line34">line 34</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="setDateTimeMapping"><span class="type-signature"></span>setDateTimeMapping<span class="signature">(playlist)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Save the mapping from playlist's ProgramDateTime to display. This should
only ever happen once at the start of playback.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlist</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlist</span>


            
            </td>

            

            

            <td class="description last">The currently active playlist</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="sync-controller.js.html">sync-controller.js</a>, <a href="sync-controller.js.html#line336">line 336</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="setupMediaGroups"><span class="type-signature"></span>setupMediaGroups<span class="signature">(settings, mode)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Setup PlaylistLoaders and Tracks for media groups (Audio, Subtitles,
Closed-Captions) specified in the master manifest.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>settings</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Object containing required information for setting up the media groups
                <h6>Properties</h6>
                

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segmentLoaders.AUDIO</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SegmentLoader.html">SegmentLoader</a></span>


            
            </td>

            

            

            <td class="description last">Audio segment loader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>segmentLoaders.SUBTITLES</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SegmentLoader.html">SegmentLoader</a></span>


            
            </td>

            

            

            <td class="description last">Subtitle segment loader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>segmentLoaders.main</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SegmentLoader.html">SegmentLoader</a></span>


            
            </td>

            

            

            <td class="description last">Main segment loader</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>tech</code></td>
            

            <td class="type">
            
                
<span class="param-type">Tech</span>


            
            </td>

            

            

            <td class="description last">The tech of the player</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>requestOptions</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">XHR request options used by the segment loaders</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>masterPlaylistLoader</code></td>
            

            <td class="type">
            
                
<span class="param-type">PlaylistLoader</span>


            
            </td>

            

            

            <td class="description last">PlaylistLoader for the master source</td>
        </tr>

    
    </tbody>
</table>

            </td>
        </tr>

    

        <tr>
            
                <td class="name"><code>mode</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last">Mode of the hls source handler. Can be 'auto', 'html5', or 'flash'</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>settings.hls</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="HlsHandler.html">HlsHandler</a></span>


            
            </td>

            

            

            <td class="description last">HLS SourceHandler</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>settings.master</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">The parsed master manifest</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>settings.mediaTypes</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Object to store the loaders, tracks, and utility methods for each media type</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>settings.blacklistCurrentPlaylist</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">Blacklists the current rendition and forces a rendition switch.</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-groups.js.html">media-groups.js</a>, <a href="media-groups.js.html#line656">line 656</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="skipEmptySegments_"><span class="type-signature"></span>skipEmptySegments_<span class="signature">(segmentInfo)</span><span class="type-signature"> &rarr; {Object}</span></h4>
    

    



<div class="description">
    Prevents the segment loader from requesting segments we know contain no subtitles
by walking forward until we find the next segment that we don't know whether it is
empty or not.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segmentInfo</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">a segment info object that describes the current segment</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="vtt-segment-loader.js.html">vtt-segment-loader.js</a>, <a href="vtt-segment-loader.js.html#line211">line 211</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    a segment info object that describes the current segment
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="stableSort"><span class="type-signature"></span>stableSort<span class="signature">(array, sortFn)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Resuable stable sort function
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>array</code></td>
            

            <td class="type">
            
                
<span class="param-type">Playlists</span>


            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sortFn</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">Different comparators</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-selectors.js.html">playlist-selectors.js</a>, <a href="playlist-selectors.js.html#line32">line 32</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="start"><span class="type-signature"></span>start<span class="signature">()</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    start loading of the playlist
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="playlist-loader.js.html">playlist-loader.js</a>, <a href="playlist-loader.js.html#line481">line 481</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="startLoaders"><span class="type-signature"></span>startLoaders<span class="signature">(playlistLoader, mediaType)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Start loading provided segment loader and playlist loader
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>playlistLoader</code></td>
            

            <td class="type">
            
                
<span class="param-type">PlaylistLoader</span>


            
            </td>

            

            

            <td class="description last">PlaylistLoader to start loading</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>mediaType</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Active media type</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-groups.js.html">media-groups.js</a>, <a href="media-groups.js.html#line42">line 42</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="stopLoaders"><span class="type-signature"></span>stopLoaders<span class="signature">(segmentLoader, mediaType)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    Pause provided segment loader and playlist loader if active
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>segmentLoader</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="SegmentLoader.html">SegmentLoader</a></span>


            
            </td>

            

            

            <td class="description last">SegmentLoader to pause</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>mediaType</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">Active media type</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-groups.js.html">media-groups.js</a>, <a href="media-groups.js.html#line23">line 23</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="textRange"><span class="type-signature"></span>textRange<span class="signature">(range, i)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    convert a TimeRange to text
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>range</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRange</span>


            
            </td>

            

            

            <td class="description last">the timerange to use for conversion</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>i</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">the iterator on the range to convert</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="bin-utils.js.html">bin-utils.js</a>, <a href="bin-utils.js.html#line11">line 11</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
            

    

    
    <h4 class="name" id="timestampOffset"><span class="type-signature"></span>timestampOffset<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    Set/get the timestampoffset on the SourceBuffer
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line150">line 150</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    the timestamp offset
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="timeUntilRebuffer"><span class="type-signature"></span>timeUntilRebuffer<span class="signature">(buffered, currentTime, playbackRate)</span><span class="type-signature"> &rarr; {Number}</span></h4>
    

    



<div class="description">
    Calculates the amount of time left in seconds until the player hits the end of the
buffer and causes a rebuffer
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>buffered</code></td>
            

            <td class="type">
            
                
<span class="param-type">TimeRange</span>


            
            </td>

            

            

            <td class="description last">The state of the buffer</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>currentTime</code></td>
            

            <td class="type">
            
                
<span class="param-type">Numnber</span>


            
            </td>

            

            

            <td class="description last">The current time of the player</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>playbackRate</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            

            

            <td class="description last">The current playback rate of the player. Defaults to 1.</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="ranges.js.html">ranges.js</a>, <a href="ranges.js.html#line347">line 347</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Time until the player has to start rebuffering in seconds.
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Number</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="track"><span class="type-signature"></span>track<span class="signature">(track<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {TextTrack}</span></h4>
    

    



<div class="description">
    Set a subtitle track on the segment loader to add subtitles to
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>track</code></td>
            

            <td class="type">
            
                
<span class="param-type">TextTrack</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last">The text track to add loaded subtitles to</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="vtt-segment-loader.js.html">vtt-segment-loader.js</a>, <a href="vtt-segment-loader.js.html#line126">line 126</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    Returns the subtitles track
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">TextTrack</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="updating"><span class="type-signature"></span>updating<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
    

    



<div class="description">
    Whether the underlying sourceBuffer is updating or not
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="source-updater.js.html">source-updater.js</a>, <a href="source-updater.js.html#line141">line 141</a>
    </li></ul></dd>
    

    

    

    
</dl>













<h5>Returns:</h5>

        
<div class="param-desc">
    the updating status of the SourceBuffer
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Boolean</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="waitForCompletion"><span class="type-signature"></span>waitForCompletion<span class="signature">(activeXhrs, decrypter, doneFn)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    This function waits for all XHRs to finish (with either success or failure)
before continueing processing via it's callback. The function gathers errors
from each request into a single errors array so that the error status for
each request can be examined later.
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>activeXhrs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last">an object that tracks all XHR requests</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>decrypter</code></td>
            

            <td class="type">
            
                
<span class="param-type">WebWorker</span>


            
            </td>

            

            

            <td class="description last">a WebWorker interface to AES-128 decryption routines</td>
        </tr>

    

        <tr>
            
                <td class="name"><code>doneFn</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last">a callback that is executed after all resources have been
                           downloaded and any decryption completed</td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="media-segment-request.js.html">media-segment-request.js</a>, <a href="media-segment-request.js.html#line294">line 294</a>
    </li></ul></dd>
    

    

    

    
</dl>


















        
    

    

    
</article>

</section>




</div>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="HlsHandler.html">HlsHandler</a></li><li><a href="MasterPlaylistController.html">MasterPlaylistController</a></li><li><a href="module.exports.html">exports</a></li><li><a href="module.exports_module.exports.html">exports</a></li><li><a href="PlaybackWatcher.html">PlaybackWatcher</a></li><li><a href="Representation.html">Representation</a></li><li><a href="SegmentLoader.html">SegmentLoader</a></li><li><a href="SourceUpdater.html">SourceUpdater</a></li><li><a href="VTTSegmentLoader.html">VTTSegmentLoader</a></li></ul><h3>Global</h3><ul><li><a href="global.html#abort">abort</a></li><li><a href="global.html#abortAll">abortAll</a></li><li><a href="global.html#activeGroup">activeGroup</a></li><li><a href="global.html#appendBuffer">appendBuffer</a></li><li><a href="global.html#backwardDuration">backwardDuration</a></li><li><a href="global.html#buffered">buffered</a></li><li><a href="global.html#buffered_">buffered_</a></li><li><a href="global.html#bufferIntersection">bufferIntersection</a></li><li><a href="global.html#byterangeStr">byterangeStr</a></li><li><a href="global.html#calculateBufferedPercent">calculateBufferedPercent</a></li><li><a href="global.html#checkBuffer_">checkBuffer_</a></li><li><a href="global.html#clamp">clamp</a></li><li><a href="global.html#comparePlaylistBandwidth">comparePlaylistBandwidth</a></li><li><a href="global.html#comparePlaylistResolution">comparePlaylistResolution</a></li><li><a href="global.html#createMediaTypes">createMediaTypes</a></li><li><a href="global.html#createTransferableMessage">createTransferableMessage</a></li><li><a href="global.html#DecrypterWorker">DecrypterWorker</a></li><li><a href="global.html#decryptSegment">decryptSegment</a></li><li><a href="global.html#detectEndOfStream">detectEndOfStream</a></li><li><a href="global.html#dispose">dispose</a></li><li><a href="global.html#duration">duration</a></li><li><a href="global.html#enableFunction">enableFunction</a></li><li><a href="global.html#error">error</a></li><li><a href="global.html#estimateSegmentRequestTime">estimateSegmentRequestTime</a></li><li><a href="global.html#findAdCue">findAdCue</a></li><li><a href="global.html#findGaps">findGaps</a></li><li><a href="global.html#findNextRange">findNextRange</a></li><li><a href="global.html#findRange">findRange</a></li><li><a href="global.html#findSoleUncommonTimeRangesEnd">findSoleUncommonTimeRangesEnd</a></li><li><a href="global.html#formatHexString">formatHexString</a></li><li><a href="global.html#forwardDuration">forwardDuration</a></li><li><a href="global.html#getCodecs">getCodecs</a></li><li><a href="global.html#getContainerType">getContainerType</a></li><li><a href="global.html#getExpiredTime">getExpiredTime</a></li><li><a href="global.html#getMediaInfoForTime">getMediaInfoForTime</a></li><li><a href="global.html#getMostImportantError">getMostImportantError</a></li><li><a href="global.html#getProgressStats">getProgressStats</a></li><li><a href="global.html#getRequestStats">getRequestStats</a></li><li><a href="global.html#getSegmentBufferedPercent">getSegmentBufferedPercent</a></li><li><a href="global.html#getSyncPoint">getSyncPoint</a></li><li><a href="global.html#getSyncSegmentCandidate_">getSyncSegmentCandidate_</a></li><li><a href="global.html#handleErrors">handleErrors</a></li><li><a href="global.html#handleHlsLoadedMetadata">handleHlsLoadedMetadata</a></li><li><a href="global.html#handleHlsMediaChange">handleHlsMediaChange</a></li><li><a href="global.html#handleInitSegmentResponse">handleInitSegmentResponse</a></li><li><a href="global.html#handleKeyResponse">handleKeyResponse</a></li><li><a href="global.html#handleProgress">handleProgress</a></li><li><a href="global.html#handleSegmentResponse">handleSegmentResponse</a></li><li><a href="global.html#hasAttribute">hasAttribute</a></li><li><a href="global.html#HlsSourceHandler">HlsSourceHandler</a></li><li><a href="global.html#initSegment">initSegment</a></li><li><a href="global.html#initSegmentId">initSegmentId</a></li><li><a href="global.html#intervalDuration">intervalDuration</a></li><li><a href="global.html#isAes">isAes</a></li><li><a href="global.html#isBlacklisted">isBlacklisted</a></li><li><a href="global.html#isDisabled">isDisabled</a></li><li><a href="global.html#isEnabled">isEnabled</a></li><li><a href="global.html#isFmp4">isFmp4</a></li><li><a href="global.html#isIncompatible">isIncompatible</a></li><li><a href="global.html#lastBandwidthSelector">lastBandwidthSelector</a></li><li><a href="global.html#load">load</a></li><li><a href="global.html#lowestBitrateCompatibleVariantSelector">lowestBitrateCompatibleVariantSelector</a></li><li><a href="global.html#makeMimeTypeString">makeMimeTypeString</a></li><li><a href="global.html#media">media</a></li><li><a href="global.html#mediaSegmentRequest">mediaSegmentRequest</a></li><li><a href="global.html#mimeType">mimeType</a></li><li><a href="global.html#minRebufferMaxBandwidthSelector">minRebufferMaxBandwidthSelector</a></li><li><a href="global.html#movingAverageBandwidthSelector">movingAverageBandwidthSelector</a></li><li><a href="global.html#onGroupChanged">onGroupChanged</a></li><li><a href="global.html#onTrackChanged">onTrackChanged</a></li><li><a href="global.html#parseCodecs">parseCodecs</a></li><li><a href="global.html#pause">pause</a></li><li><a href="global.html#paused">paused</a></li><li><a href="global.html#playlist">playlist</a></li><li><a href="global.html#playlistEnd">playlistEnd</a></li><li><a href="global.html#printableRange">printableRange</a></li><li><a href="global.html#probeSegmentInfo">probeSegmentInfo</a></li><li><a href="global.html#queueCallback_">queueCallback_</a></li><li><a href="global.html#refreshDelay">refreshDelay</a></li><li><a href="global.html#reloadSourceOnError">reloadSourceOnError</a></li><li><a href="global.html#remove">remove</a></li><li><a href="global.html#renditionSelectionMixin">renditionSelectionMixin</a></li><li><a href="global.html#reset">reset</a></li><li><a href="global.html#resetEverything">resetEverything</a></li><li><a href="global.html#resetLoader">resetLoader</a></li><li><a href="global.html#resyncLoader">resyncLoader</a></li><li><a href="global.html#runCallback_">runCallback_</a></li><li><a href="global.html#safeBackBufferTrimTime">safeBackBufferTrimTime</a></li><li><a href="global.html#safeGetComputedStyle">safeGetComputedStyle</a></li><li><a href="global.html#safeLiveIndex">safeLiveIndex</a></li><li><a href="global.html#saveExpiredSegmentInfo">saveExpiredSegmentInfo</a></li><li><a href="global.html#seekable">seekable</a></li><li><a href="global.html#segmentXhrHeaders">segmentXhrHeaders</a></li><li><a href="global.html#setDateTimeMapping">setDateTimeMapping</a></li><li><a href="global.html#setupMediaGroups">setupMediaGroups</a></li><li><a href="global.html#simpleSelector">simpleSelector</a></li><li><a href="global.html#skipEmptySegments_">skipEmptySegments_</a></li><li><a href="global.html#stableSort">stableSort</a></li><li><a href="global.html#start">start</a></li><li><a href="global.html#startLoaders">startLoaders</a></li><li><a href="global.html#stopLoaders">stopLoaders</a></li><li><a href="global.html#sumDurations">sumDurations</a></li><li><a href="global.html#systemBandwidth">systemBandwidth</a></li><li><a href="global.html#textRange">textRange</a></li><li><a href="global.html#timestampOffset">timestampOffset</a></li><li><a href="global.html#timeUntilRebuffer">timeUntilRebuffer</a></li><li><a href="global.html#track">track</a></li><li><a href="global.html#updateMaster">updateMaster</a></li><li><a href="global.html#updateSegments">updateSegments</a></li><li><a href="global.html#updating">updating</a></li><li><a href="global.html#utils">utils</a></li><li><a href="global.html#waitForCompletion">waitForCompletion</a></li></ul>
</nav>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.4</a> on Mon Nov 06 2017 16:03:35 GMT-0500 (EST)
</footer>

<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>